کار با رنگ ها در اکسل با استفاده از کدهای VBA
در آموزش امروز می خواهیم در خصوص نحوه کار با رنگ ها در اکسل با استفاده از کدهای VBA صحبت کنیم .
یکی از چیزهایی که در نرم افزار اکسل زیاد با آن سر و کار داریم رنگ ها هستند . در ساده ترین حالت ما با کمک ابزارهایی که در اختیار مان است کار استفاده از رنگ ها را انجام می دهیم .
اما این همه آن چیزی نیست که اکسل می تواند در اختیارمان بگذارد کلی روش های دیگر هم وجود دارد که از آنها برای کار کردن و استفاده از رنگ ها در محیط اکسل می شود از آنها بهره برد .
اگر دوست دارید که بدانید :
چگونه می توانیم از رنگها برای تغییر شکل و شمایل سلول ها و محدوده ها استفاده کنیم ؟.
و یا اینکه چگونه می توانیم رنگ فونتها و نوشته های خود را در سلول ها و محدوده های مورد نظر خود تغییر دهیم ؟
و یا چطور می شود رنگ کادر سلول های خود در اکسل را تغییر دهیم ؟
این مطلب همان چیزی است که به دنبال آن می گشتید .
انجام تمامی این کارهایی که در اینجا ذکر کردیم خیلی ساده است .
اینکه بخواهیم رنگ یک نوشته را تغییر دهیم و یا رنگ یک یا چند سلول را کار چندان سختی نیست .
همه اینها از کارهای روزمره ای است که من و شما به دفعات آنها را در اکسل انجام می دهیم .
تا به اینجای کار که هیچ مشکلی در کار نیست .
و قرار هم نیست وقت خودمان را درگیر یادگیری کاری بکنیم که آن را به راحتی هر چه تمامتر و به سادگی داریم انجام می دهیم .
پس هدف چیست ؟
می خواهیم در این آموزش با هم به بررسی روش هایی بپردازیم که تمامی این کارها را یعنی تغییر رنگ فونت ها یا پس زمینه سلول ها و کادر پیرامون آنها را برعهده خود برنامه بگذاریم .
بنابراین قرار است این کارها را بدون دخالت دست و یا بدون اینکه از کاربر بخواهیم کار خاصی انجام دهد را به سرانجام برسانیم .
برای اینکه دخالت فرد را در این فرآیند حذف کنیم باید به سراغ برنامه نویسی وی بی ای و استفاده از کدهای VBA برویم .
من سعی می کنم در اینجا تمامی مراحل این کار و کلیه کدهایی را که برای این کار لازم است را مرحله به مرحله برای شما توضیح دهم .
و نهایت سعی خود را می کنم این کار را در نهایت سادگی و بدور از پیچیدگی های غیر ضروری انجام دهم تا همه در هر سطح از معلومات بتوانند از این مطلب بهره ببرند .
پس از شما دعوت می کنم که تا انتهای این آموزش همراه من باشید .
مراحل کار با رنگ ها در اکسل با استفاده از کدهای VBA
کار را با ساده ترین حالت شروع می کنیم و سپس به سراغ مراحل پیشرفته تر خواهیم رفت.
برای شروع کار می خواهیم رنگ پس زمینه سلول A1 را به رنگ آبی تغییر دهیم .
برای این کار یک روال یا رویه را ایجاد می کنیم .
حالا در داخل این رویه کدهای زیر را می نویسیم .
Range("A1").Font.Color = vbblue
می بینید که این خط از کد در ساده ترین حالت خود قرار دارد .
اگر بخواهیم این خط کد را به زبان انسان ترجمه کنیم ( هرچند که تا به اینجا هم این کدها برای ما قابل فهم تر هستند تا کامپیوتر)
می توانیم این کدها را بصورت زیر ترجمه کنیم .
– چه سلولی مد نظر ماست؟
سلول A1 پس این سلول را با استفاده دستور (“Range(“A1 به برنامه معرفی می کنیم .
-با چه قسمتی از این سلول می خواهیم کار کنیم ؟ با پس زمینه ( Interior ) یا کادر پیرامون ( Border ) آن یا نوشته ( Font ) داخل آن .
در اینجا پس زمینه سلول مد نظرمان است
پس از دستور Interior استفاده می کنیم .
حالا با این پس زمینه می خواهیم چه باید بکنیم?؟ می خواهیم خاصیت رنگ ( Color )آن را تغییر دهیم .
در پایان هم که تعیین می کنیم چه رنگی مورد نظرمان است .
در اینجا من از رنگ آبی استفاده کرده ام پس آن را مساوی VbBlue قرار می دهم .
اما اگر بخواهیم از رنگهای دیگری بغیر از رنگ آبی استفاده کنیم می توانیم از جدول زیر یک مورد را انتخاب و آن را جایگزین رنگ آبی بکنیم .
در اینجا ما یک سلول از مجموع سلول های موجود در یک شیت را که همان شیت کاری فعال ما می باشد را انتخاب کرده و رنگ پس زمینه آن را تغییر دادیم .
برای این تغییر رنگ هم از یک روش استفاده کردیم که آن استفاده از ثابت های رنگی با کد VB بود .
اما اکسل برای تغییر رنگ ها چه برای فونت ها و چه برای سلول ها دست ما را بیشتر از اینها باز گذاشته و روش های متعدد دیگری را نیز در اختیار ما قرار داده که می توانیم از هر کدام از آنها بسته به نیاز و سلیقه خود استفاده کنیم .
در این روش تعداد رنگهایی که در اختیار ما قرار می گیرد محدود است . اما اگر به تعداد رنگهای بیشتری احتیاج دارید به سراغ روش دوم بروید .
در ادامه با روش های بیشتری در این زمینه آشنا می شویم .
در اینجا ما از یک کد رنگ خاص استفاده کرده ایم و آن را به پس زمینه سلول های محدوده مورد نظر خود اختصاص داده ایم .
روش دوم : استفاده از متد Color.Index .
روش بعدی برای کار با رنگها در اکسل از طریق کد نویسی وی بی ای استفاده از متد Color.Index است.
در این روش نسبت به روش اول تعداد رنگهای بیشتری در اختیار مان قرار می گیرد . یعنی دقیقا 56 رنگ در برابر 8 رنگ در روش اول .
به تصویر توجه کنید .
این تصویر لیستی از رنگها را به نمایش می گذارد .
در کنار هر رنگ هم می توانید یک عدد را مشاهده کنید .
این عدد که معادل یک رنگ است را می توان در متد ColorIndex استفاده کرد .
به کدهای زیر در این زمینه نگاه کنید .است.
Range("B7:D8").Border.ColorIndex = 32
در اینجا ما با استفاده از متد ColorIndex رنگ کادر مربوط به سلول ها را در محدوده مورد نظر خود به رنگ شماره ۳۲ درآورده ایم .
البته ما در خصوص کار با این متد در مطلب جداگانه ای بطور مفصل صحبت کرده ایم برای دسترسی به این مطلب می توانید به از لینک زیر استفاده کنید .
مطلب مرتبط : آشنایی با متد ColorIndex در اکسل
روش سوم : استفاده از متد Xlrgbcolor در کار با رنگها
در اینجا با هم متد و روش های دیگری را برای کار با رنگها در اکسل مورد بررسی قرار می دهیم .
حالت اول استفاده از متد XlrgbColor
این روش یکی از روش هایی است که می توانیم با استفاده از آن به کار با رنگ ها در اکسل بپردازیم .
به کدهای زیر دقت کنید .
Range("A1").Font.Color = rgbdarkgreen
در اینجا با استفاده از این متد رنگ فونت نوشته های خود را که در محدوده سلول های A2 : D2 قرار دارند را به رنگ سبز تیره درآورده ایم .
اما خود این رنگ را از کجا آورده ایم .
قبل از هر چیز سری به لینک زیر بزنید.
لیست رنگهای مربوط به متد XlrgbColor .
در اینجا لیست بلند بالایی از اسامی مربوط به رنگهایی که در زیر مجموعه این متد قرار دارند به همراه نام هر رنگ را می توانید مشاهده کنید .
همانطور که می بینید استفاده از این روش به نسبت روش قبلی دامنه اختیار و انتخاب ما را تا حد بسیار زیادی بالا می برد .
فقط کافی است نام رنگ مورد نظر خود را انتخاب کرده و آن را جایگزین رنگ موجود در کد بالا کنیم .
حالت دوم : استفاده از اعداد ثابت معادل رنگها
اگر به لینک قبلی که معرفی کردیم مراجعه کنید در لیست مربوط به رنگ ها مشاهده خواهید کرد که در جلوی اسامی مربوط به هر رنگ یک عدد چند رقمی درج شده است.
این عدد در واقع کدی است چند رقمی که برای هر رنگ بطور مجزا تعریف شده است .
در حین کد نویسی ما هر جا که احتیاج به استفاده از رنگها داشته باشیم می توانیم به جای اینکه از اسم رنگ مورد نظر خود استفاده کنیم از کد مربوط به این رنگها استفاده کنیم .
بعنوان مثال به کدهای زیر دقت کنید .
Range("B5:B6").Interior.Color = 15773696
روش چهارم : استفاده از متد RGB .
متد یا تابع RGB یکی از توابع داخلی در برنامه نویسی وی بی ای است که با استفاده از آن می توانیم رنگ محدوده ها و یا فونت های مورد نظر خود را تعیین کنیم .
تابع RGB دارای سه آرگومان می باشد .
آرگومان اول عددی است بین ۰ تا ۲۵۵ و میزان رنگ قرمز- Red- را تعیین می کند .
آرگومان دوم عددی است بین ۰ تا ۲۵۵ و میزان رنگ سبز – Green- را تعیین می کند .
آرگومان سوم عددی است بین ۰ تا ۲۵۵ و میزان رنگ آبی – Blue – را تعیین می کند .
مجموع این سه آرگومان در نهایت یک خروجی را در قالب رنگ مورد نظر ما ایجاد خواهد کرد .
به عنوان مثال به کدهای زیر توجه کنید .
Range("a4").Interior.Color = RGB(215, 145, 85)
در این کدها ما سلول مورد نظر خود را با استفاده از متد RGB تغییر رنگ دادیم .
استفاده از پالت رنگهای ویندوز
روش هایی را که تا به اینجا مورد بررسی قرار دادیم همگی مربوط به امکاناتی بود که برای کار با رنگ ها در داخل خود نرم افزار اکسل برای ما فراهم شده است .
اما در ادامه می خواهیم به بررسی روشی بپردازیم که با استفاده از آن می توانیم پنجره ای را برای کاربر به نمایش بگذاریم که در آن پالت رنگ های مورد استفاده در سیستم عامل ویندوز برای وی به نمایش درآمده و کاربر می تواند به انتخاب رنگ مورد نظر خود از بین رنگهای موجود در این پالت بپردازد .
قبل از هر چیز بیایید نگاهی به این پنجره بیندازیم .
اگر به تصویر بالا دقت کنید مشاهده می کنید که این پنجره شامل دو تب کاری می باشد .
تب اول تحت عنوان standard و تب دوم تحت عنوان Custom نام گذاری شده است .
حالا ما می خواهیم با هم روشی را بررسی کنیم که با استفاده از آن می توانیم این پنجره را به کاربر نمایش دهیم .
حتی با استفاده از کد نویسی می توانیم تعیین کنیم که با باز شدن این پنجره کدام یک از این تب ها برای کاربر نمایش داده شود .
برای اینکه بتوانیم این پنجره را به نمایش بگذاریم باید از دستور زیر استفاده کنیم.
[( Application.Dialogs(xlDialogEditColor).Show(intIndex, [intRed], [intGreen], [intBlue
همانطور که می بینید این تابع Application.Dialougs هم مثل خیلی از توابع داخلی زبان برنامه نویسی وی بی ای دارای چند تا ورودی است . در ادامه با این تابع و ورودی های آن بیشتر آشنا می شویم .
اولین ورودی این تابع intindex است . این ورودی در واقع یک عدد بین صفر تا 256 است . بعدا راجع به آن بیشتر صحبت می کنیم .
در ادامه سه تا ورودی دیگر هم داریم که به ترتیب intred کد مربوط به رنگ قرمز ، intgreen کد مربوط به رنگ سبز و intblue کد مربوط به رنگ آبی را شامل می شود .
اکنون می خواهیم با استفاده از این دستور پالت مربوط به رنگ ها را احضار کنیم .
در اینجا با استفاده از چند مثال حالتهای مختلف مربوط به این دستور و نیز نتیجه خروجی را با هم بررسی می کنیم .
بعنوان مثال کد زیر را نگاه کنید .
Application.Dialogs(xlDialogEditColor).Show(12)
اگر کد بالا را اجرا کنیم نتیجه بصورت تصویر زیر خواهد بود .
اگر به تصویر بالا دقت کنید خروجی کد ما به این صورت است که با باز شدن پنجره مربوطه اول تب مربوط به standard برای کاربر به نمایش درمی آید .
این بخاطر این است که ما فقط آرگومان اول از تابع خودمان را مقدار دهی کرده ایم
در دستور بالا عدد ۱۲ نمایانگر آرگومان ColIndex است .
این آرگومان می تواند عددی بین ۱تا ۵۶ باشد . وارد کردن عددی خارج از این محدوده موجب بروز خطا در اجرای کد ما می شود .
اما به کد زیر نگاه کنید .
Application.Dialogs(xlDialogEditColor).Show(55, 125, 100, 215);
وقتی که این کد را اجرا می کنید مجددا همان پالت رنگی برای شما نمایش داده می شود با این تفاوت که این بار به جای سربرگ standard سربرگ custom باز و فعال شده است .
برای مشاهده لینک دانلود لطفا وارد حساب کاربری خود شوید!
وارد شویدپسورد فایل : ندارد گزارش خرابی لینک